/**
 * 
 */
package com.shifan.phone.action;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shifan.phone.common.Message;
import com.shifan.phone.common.Page;
import com.shifan.phone.common.Tools;
import com.shifan.phone.model.OrderModel;
import com.shifan.phone.model.UserModel;
import com.shifan.phone.service.OrderModelService;

/**
 * 订单Action
 * @author TangLei
 * @date 2018年12月5日 下午5:18:14
 * @version 1.0
 */
@Controller
@RequestMapping("/order")
public class OrderModelAction {
	//注入订单Service接口
	@Resource
	OrderModelService orderModelService;
	
	/**
	 * 增加
	 * @param order 订单对象
	 * @return 信息对象
	 */
	@RequestMapping("/save")
	@ResponseBody
	public Message save(OrderModel order,HttpSession session){
		//创建一个信息对象
		Message mes = new Message();
		//得到登录对象
		UserModel user = (UserModel) session.getAttribute("login");
		//给订单对象的用户的ID赋值
		order.setUserId(user.getUsersId());
		//得到一个随机数
		String ordersId = Tools.getRandomString();
		//给订单ID赋值
		order.setOrdersId(ordersId);
		//调用订单Service接口的增加的方法
		int rows = orderModelService.insertSelective(order);
		//判断
		if(rows > 0){
			session.setAttribute("ordersId", ordersId);
			//给message对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("增加成功!");
		}else {
			//给message对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("增加失败!");
		}
		return mes;
	}
	
	/**
	 * 查询所有
	 * @param order 订单的对象
	 * @param page 分页对象
	 * @return map集合
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String,Object> findAll(OrderModel order,Page page,HttpSession session){
		//给订单对象的分页对象赋值
		order.setPages(page);
		//得到当前登录用户
		UserModel user = (UserModel) session.getAttribute("login");
		//订单对象的用户ID赋值
		order.setUserId(user.getUsersId());
		//调用订单Service接口的查询所有的方法
		return orderModelService.findAll(order);
	}
	
	/**
	 * 删除
	 * @param ordersId 订单ID
	 * @return 信息对象
	 */
	@RequestMapping("/deletes")
	@ResponseBody
	public Message deletes(String ordersId){
		//创建一个信息对象
		Message mes = new Message();
		//调用订单Service接口的删除的方法
		int rows = orderModelService.deleteByPrimaryKey(ordersId);
		//判断
		if(rows > 0){
			//给信息对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("删除成功!");
		}else {
			//给信息对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("删除失败!");
		}
		//返回mes
		return mes;
	}
	
	/**
	 * 修改
	 * @param order 订单对象
	 * @return 信息对象
	 */
	@RequestMapping("/update")
	@ResponseBody
	public Message update(OrderModel order,HttpSession session){
		//创建一个信息对象
		Message mes = new Message();
		//判断
		if(Tools.isEmpty(order.getOrdersId())){
			//得到订单Id
			String ordersId = (String) session.getAttribute("ordersId");
			//订单订单ID赋值
			order.setOrdersId(ordersId);
		}
		
		//调用订单Service接口的修改的方法
		int rows = orderModelService.updateByPrimaryKeySelective(order);
		//判断
		if(rows > 0){
			//给信息对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("修改成功!");
		}else{
			//给信息对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("修改失败!");
		}
		//返回
		return mes;
	}
	
	/**
	 * 查询待我发货订单
	 * @param session
	 * @return 订单对象集合
	 */ 
	@RequestMapping("/findHair")
	@ResponseBody
	public List<OrderModel> findHair(HttpSession session){
		//得到当前登录对象
		UserModel user = (UserModel) session.getAttribute("login");
		//调用订单Service接口的查询待我发货的方法
		return orderModelService.findHair(user.getUsersId());
	}
}
